package thread;

class MyThread2 extends Thread{
    @Override
    public void run(){
        //run 只是描述了线程要干啥任务-->不是start调用的
        while(true){
            System.out.println("hello thread");
            try {
                Thread.sleep(1000);
            }catch (InterruptedException e){
                e.printStackTrace();
            }
        }
    }
}
public class demo2 {
    public static void main(String[] args) {
        Thread t = new MyThread2();//Thread中自带有方法-->比如start
        t.start();//调用 操作系统 提供的"创建线程"api  在内核中创建对应pcb,并且把pcb加入到链表之中-->调用start才会创建新线程
                  //进一的系统调度到这个线程之后,就会执行上述run方法中的逻辑

        t.run();//这里是直接使用主线程,没有创建新线程
        //此时run和主线程的循环不是并发循环,是串行循环-->此时必须要run中的循环结束,才能继续执行到下一个循环

        while (true){
            System.out.println("main");
            try {
                Thread.sleep(1000);
            }catch (InterruptedException e){
                e.printStackTrace();
            }
        }
    }
}
